/**
 * <copyright>
 * </copyright>
 *
 * $Id$
 */
package EA_Model.IEC61970.Wires;

import EA_Model.IEC61970.Core.PowerSystemResource;

import EA_Model.IEC61970.Domain.PerCent;
import EA_Model.IEC61970.Domain.Seconds;
import EA_Model.IEC61970.Domain.Voltage;

/**
 * <!-- begin-user-doc -->
 * A representation of the model object '<em><b>Tap Changer</b></em>'.
 * <!-- end-user-doc -->
 *
 * <p>
 * The following features are supported:
 * <ul>
 *   <li>{@link EA_Model.IEC61970.Wires.TapChanger#getHighStep <em>High Step</em>}</li>
 *   <li>{@link EA_Model.IEC61970.Wires.TapChanger#getInitialDelay <em>Initial Delay</em>}</li>
 *   <li>{@link EA_Model.IEC61970.Wires.TapChanger#getLowStep <em>Low Step</em>}</li>
 *   <li>{@link EA_Model.IEC61970.Wires.TapChanger#getLtcFlag <em>Ltc Flag</em>}</li>
 *   <li>{@link EA_Model.IEC61970.Wires.TapChanger#getNeutralStep <em>Neutral Step</em>}</li>
 *   <li>{@link EA_Model.IEC61970.Wires.TapChanger#getNeutralU <em>Neutral U</em>}</li>
 *   <li>{@link EA_Model.IEC61970.Wires.TapChanger#getNormalStep <em>Normal Step</em>}</li>
 *   <li>{@link EA_Model.IEC61970.Wires.TapChanger#getRegulationStatus <em>Regulation Status</em>}</li>
 *   <li>{@link EA_Model.IEC61970.Wires.TapChanger#getStepVoltageIncrement <em>Step Voltage Increment</em>}</li>
 *   <li>{@link EA_Model.IEC61970.Wires.TapChanger#getSubsequentDelay <em>Subsequent Delay</em>}</li>
 * </ul>
 * </p>
 *
 * @see EA_Model.IEC61970.Wires.WiresPackage#getTapChanger()
 * @model
 * @generated
 */
public interface TapChanger extends PowerSystemResource {
	/**
	 * Returns the value of the '<em><b>High Step</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>High Step</em>' reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>High Step</em>' reference.
	 * @see #setHighStep(EA_Model.IEC61970.Domain.Integer)
	 * @see EA_Model.IEC61970.Wires.WiresPackage#getTapChanger_HighStep()
	 * @model ordered="false"
	 * @generated
	 */
	EA_Model.IEC61970.Domain.Integer getHighStep();

	/**
	 * Sets the value of the '{@link EA_Model.IEC61970.Wires.TapChanger#getHighStep <em>High Step</em>}' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>High Step</em>' reference.
	 * @see #getHighStep()
	 * @generated
	 */
	void setHighStep(EA_Model.IEC61970.Domain.Integer value);

	/**
	 * Returns the value of the '<em><b>Initial Delay</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Initial Delay</em>' reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Initial Delay</em>' reference.
	 * @see #setInitialDelay(Seconds)
	 * @see EA_Model.IEC61970.Wires.WiresPackage#getTapChanger_InitialDelay()
	 * @model ordered="false"
	 * @generated
	 */
	Seconds getInitialDelay();

	/**
	 * Sets the value of the '{@link EA_Model.IEC61970.Wires.TapChanger#getInitialDelay <em>Initial Delay</em>}' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Initial Delay</em>' reference.
	 * @see #getInitialDelay()
	 * @generated
	 */
	void setInitialDelay(Seconds value);

	/**
	 * Returns the value of the '<em><b>Low Step</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Low Step</em>' reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Low Step</em>' reference.
	 * @see #setLowStep(EA_Model.IEC61970.Domain.Integer)
	 * @see EA_Model.IEC61970.Wires.WiresPackage#getTapChanger_LowStep()
	 * @model ordered="false"
	 * @generated
	 */
	EA_Model.IEC61970.Domain.Integer getLowStep();

	/**
	 * Sets the value of the '{@link EA_Model.IEC61970.Wires.TapChanger#getLowStep <em>Low Step</em>}' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Low Step</em>' reference.
	 * @see #getLowStep()
	 * @generated
	 */
	void setLowStep(EA_Model.IEC61970.Domain.Integer value);

	/**
	 * Returns the value of the '<em><b>Ltc Flag</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Ltc Flag</em>' reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Ltc Flag</em>' reference.
	 * @see #setLtcFlag(EA_Model.IEC61970.Domain.Boolean)
	 * @see EA_Model.IEC61970.Wires.WiresPackage#getTapChanger_LtcFlag()
	 * @model ordered="false"
	 * @generated
	 */
	EA_Model.IEC61970.Domain.Boolean getLtcFlag();

	/**
	 * Sets the value of the '{@link EA_Model.IEC61970.Wires.TapChanger#getLtcFlag <em>Ltc Flag</em>}' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Ltc Flag</em>' reference.
	 * @see #getLtcFlag()
	 * @generated
	 */
	void setLtcFlag(EA_Model.IEC61970.Domain.Boolean value);

	/**
	 * Returns the value of the '<em><b>Neutral Step</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Neutral Step</em>' reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Neutral Step</em>' reference.
	 * @see #setNeutralStep(EA_Model.IEC61970.Domain.Integer)
	 * @see EA_Model.IEC61970.Wires.WiresPackage#getTapChanger_NeutralStep()
	 * @model ordered="false"
	 * @generated
	 */
	EA_Model.IEC61970.Domain.Integer getNeutralStep();

	/**
	 * Sets the value of the '{@link EA_Model.IEC61970.Wires.TapChanger#getNeutralStep <em>Neutral Step</em>}' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Neutral Step</em>' reference.
	 * @see #getNeutralStep()
	 * @generated
	 */
	void setNeutralStep(EA_Model.IEC61970.Domain.Integer value);

	/**
	 * Returns the value of the '<em><b>Neutral U</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Neutral U</em>' reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Neutral U</em>' reference.
	 * @see #setNeutralU(Voltage)
	 * @see EA_Model.IEC61970.Wires.WiresPackage#getTapChanger_NeutralU()
	 * @model ordered="false"
	 * @generated
	 */
	Voltage getNeutralU();

	/**
	 * Sets the value of the '{@link EA_Model.IEC61970.Wires.TapChanger#getNeutralU <em>Neutral U</em>}' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Neutral U</em>' reference.
	 * @see #getNeutralU()
	 * @generated
	 */
	void setNeutralU(Voltage value);

	/**
	 * Returns the value of the '<em><b>Normal Step</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Normal Step</em>' reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Normal Step</em>' reference.
	 * @see #setNormalStep(EA_Model.IEC61970.Domain.Integer)
	 * @see EA_Model.IEC61970.Wires.WiresPackage#getTapChanger_NormalStep()
	 * @model ordered="false"
	 * @generated
	 */
	EA_Model.IEC61970.Domain.Integer getNormalStep();

	/**
	 * Sets the value of the '{@link EA_Model.IEC61970.Wires.TapChanger#getNormalStep <em>Normal Step</em>}' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Normal Step</em>' reference.
	 * @see #getNormalStep()
	 * @generated
	 */
	void setNormalStep(EA_Model.IEC61970.Domain.Integer value);

	/**
	 * Returns the value of the '<em><b>Regulation Status</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Regulation Status</em>' reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Regulation Status</em>' reference.
	 * @see #setRegulationStatus(EA_Model.IEC61970.Domain.Boolean)
	 * @see EA_Model.IEC61970.Wires.WiresPackage#getTapChanger_RegulationStatus()
	 * @model ordered="false"
	 * @generated
	 */
	EA_Model.IEC61970.Domain.Boolean getRegulationStatus();

	/**
	 * Sets the value of the '{@link EA_Model.IEC61970.Wires.TapChanger#getRegulationStatus <em>Regulation Status</em>}' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Regulation Status</em>' reference.
	 * @see #getRegulationStatus()
	 * @generated
	 */
	void setRegulationStatus(EA_Model.IEC61970.Domain.Boolean value);

	/**
	 * Returns the value of the '<em><b>Step Voltage Increment</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Step Voltage Increment</em>' reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Step Voltage Increment</em>' reference.
	 * @see #setStepVoltageIncrement(PerCent)
	 * @see EA_Model.IEC61970.Wires.WiresPackage#getTapChanger_StepVoltageIncrement()
	 * @model ordered="false"
	 * @generated
	 */
	PerCent getStepVoltageIncrement();

	/**
	 * Sets the value of the '{@link EA_Model.IEC61970.Wires.TapChanger#getStepVoltageIncrement <em>Step Voltage Increment</em>}' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Step Voltage Increment</em>' reference.
	 * @see #getStepVoltageIncrement()
	 * @generated
	 */
	void setStepVoltageIncrement(PerCent value);

	/**
	 * Returns the value of the '<em><b>Subsequent Delay</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Subsequent Delay</em>' reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Subsequent Delay</em>' reference.
	 * @see #setSubsequentDelay(Seconds)
	 * @see EA_Model.IEC61970.Wires.WiresPackage#getTapChanger_SubsequentDelay()
	 * @model ordered="false"
	 * @generated
	 */
	Seconds getSubsequentDelay();

	/**
	 * Sets the value of the '{@link EA_Model.IEC61970.Wires.TapChanger#getSubsequentDelay <em>Subsequent Delay</em>}' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Subsequent Delay</em>' reference.
	 * @see #getSubsequentDelay()
	 * @generated
	 */
	void setSubsequentDelay(Seconds value);

} // TapChanger
